#include <unistd.h>
#include <iostream>

using std::cout;
using std::endl;
using std::ends;
using std::flush;

void test()
{
    //ubuntu1804缓冲区的大小正好是1024
    for(size_t idx = 0; idx != 1024; ++idx)
    {
        cout << 'a';
    }

    operator<<(cout, "123").operator<<(endl);
    /* cout << "123" << endl;//可以刷新并且换行 */
    operator<<(cout, "456").operator<<(flush);
    /* cout << "456" << flush;//可以刷新但是不能换行 */
    cout << "789" << ends;//不能刷新也不能换行

    sleep(5);
}

int main(int argc, char **argv)
{
    test();
    return 0;
}

